package top.lixunda.commerce.common.core.controller.wrapper;

import java.util.List;
import java.util.Map;

/**
 * @author LiXunda
 * @version time:2019/10/13 17:04
 */
@SuppressWarnings("ALL")
public interface IConditionBlock {

    ConditionBlock allEq(Map<String, String> map);

    ConditionBlock eq(String column, String value);

    ConditionBlock ne(String column, String value);

    ConditionBlock gt(String column, String value);

    ConditionBlock ge(String column, String value);

    ConditionBlock lt(String column, String value);

    ConditionBlock le(String column, String value);

    ConditionBlock between(String column, String value1, String value2);

    ConditionBlock notBetween(String column, String value1, String value2);

    ConditionBlock like(String column, String value);

    ConditionBlock notLike(String column, String value);

    ConditionBlock likeLeft(String column, String value);

    ConditionBlock likeRight(String column, String value);

    ConditionBlock isNull(String... column);

    ConditionBlock isNotNull(String... column);

    ConditionBlock in(String column, List<String> values);

    ConditionBlock notIn(String column, List<String> values);

    ConditionBlock apply(String column, List<String> values);

    ConditionBlock or();

    ConditionBlock and();

    ConditionBlock or(ConditionBlock sqlBlock);

    ConditionBlock and(ConditionBlock sqlBlock);

    ConditionBlock getRoot();

    String getSql();

    String getRootSql();

}
